import http from "wechat-http"

http.baseURL = 'https://live-api.itheima.net'

// 请求拦截器
http.intercept.request = (config) => {
  // config 是请求相关的信息
  console.log(config);
  // 统一为每一个接口添加 Authorization 请求头 值是 token
  const token = getApp().token
  if (token && config.url.includes('/refreshToken')) {
    // 如果请求信息中有header 就使用header 本身 如果没有header，给他赋值为一个空对象
    config.header = config.header || {}
    // 将token 添加到请求头中
    config.header.Autorization = token
  }
  return config
}

// 响应拦截器
http.intercept.response = async (res) => {
  // 判断接口返回的状态码 如果是 401 代表 token 失效
  if (res.statusCode === 401) {
    // 调用刷新 token 接口 并以请求头的方式将 refreshToken 传递给后端
    const { code, data } = await wx.http({
      url: '/refreshToken',
      method: 'post',
      header: {
        Authorization: getApp().refreshToken
      }
    })
    console.log(data)
    if (code !== 10000) return wx.utils.toast()
    getApp().setToken(data.token, data.refreshToken)
  }
  // 玻璃无用数据  玻璃是什么啊
  return res.data
}

wx.http = http

export default http